package com.hrm.houfei.biz;

import java.util.List;

import com.hrm.houfei.jsontools.JSONException;
import com.hrm.houfei.po.Moneydetails;
import com.hrm.houfei.po.Moneyinfo;
import com.hrm.houfei.po.Userinfo;

/**
 * 薪酬标准信息业务接口
 * 
 * @author Administrator
 * 
 */
public interface IMoneyStandardBiz {

	/**
	 * 统计薪酬分布情况
	 * @return
	 */
	public List<Moneyinfo> countReportMoneyInfo();
	
	/**
	 * @title 根据薪酬标准号查询薪酬标准单信息
	 * @param standardId
	 * @return
	 */
	public Moneyinfo getMoneyInfoByStandardId(String standardId);

	/**
	 * 根据条件显示所有薪酬标准信息
	 * 
	 * @param condition
	 *            状态
	 */
	public List<Moneyinfo> showAllMoneyInfo(String condition);

	/**
	 * @title 薪酬编号是否存在
	 * @param standardId
	 *            薪酬编号
	 * @return 存在返回 true,否则返回false
	 */
	public abstract boolean isExistStandardId(String standardId);

	/**
	 * @title 制定薪酬标准
	 * @param jsonMoneyItems
	 *            薪酬标准项目
	 * @param jsonMoneyInfo
	 *            薪酬标准信息
	 * @param addname
	 *            登记人姓名
	 * @return 1为编号已经存在,2为失败,3为成功
	 */
	public int makeMoneyStandard(String jsonMoneyItems, String jsonMoneyInfo,
			String addName);

	/**
	 * 分页显示薪酬标准信息
	 * 
	 * @param start
	 *            索引
	 * @param limit
	 *            每页要显示的记录条数
	 * @return 当前页的所有记录
	 */
	public List<Moneyinfo> showMoneyInfoByPage(String start, String limit);

	/**
	 * 获取薪酬标准单信息总记录的条数
	 * 
	 * @return
	 */
	public int getCountMoneyInfoByCondtion();

	/**
	 * 根据薪酬编号显示该编号的所有薪酬项目信息
	 * 
	 * @param standardId
	 *            薪酬标准编号
	 * @return List<Moneydetails>
	 */
	public List<Moneydetails> showMoneyItemsByStandardId(String standardId);

	/**
	 * 审核薪酬标准(通过审核)
	 * 
	 * @param standardId
	 *            薪酬标准号
	 * @param checkComment
	 *            审核意见
	 * @param user
	 *            当前登陆用户实体
	 * @param isPass
	 *            是否通过审核
	 * @return 成功返回true,失败返回false
	 */
	public boolean updateCheckMoneyStandard(String standardId,
			String checkComment, Userinfo user, String isPass);

	/**
	 * 薪酬标准变更
	 * 
	 * @param formValues
	 *            薪酬标准表单Json数据
	 * @param gridValues
	 *            薪酬标准表格Json数据集
	 * @param user
	 *            当前登陆用户
	 * @return 成功返回true,失败返回false
	 * @throws JSONException
	 */
	public boolean updateMoneyStandard(String formValues, String gridValues,
			Userinfo user);

}